package com.ims.core.doc.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ims.common.annotation.Excel;
import com.ims.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 销售单明细对象 t_sal_order_entry
 *
 * @author IMS
 * @date 2024-12-02
 */
public class TSalOrderEntry extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 开票项ID */
    @Excel(name = "开票项ID")
    private String entryId;

    /** 公司代码 */
    @Excel(name = "公司代码")
    private String custId;

    /** 客户公司代码 */
    @Excel(name = "客户公司代码")
    private String siteCode;

    /** 客户公司 */
    @Excel(name = "客户公司")
    private String siteName;

    /** 订单号 */
    @Excel(name = "订单号")
    private String orderNo;

    /** 行号 */
    @Excel(name = "行号")
    private Long lineNo;

    /** 物料编号 */
    @Excel(name = "物料编号")
    private String productCode;

    /** 物料名称 */
    @Excel(name = "物料名称")
    private String productName;

    /** 单位代码 */
    @Excel(name = "单位代码")
    private String unitCode;

    /** 单位 */
    @Excel(name = "单位")
    private String unit;

    /** 数量 */
    @Excel(name = "数量")
    private BigDecimal orderQty;

    /** 税率 */
    @Excel(name = "税率")
    private BigDecimal taxRate;

    /** 税额 */
    @Excel(name = "税额")
    private BigDecimal tax;

    /** 单价(含税) */
    @Excel(name = "单价(含税)")
    private BigDecimal price;

    /** 金额(含税) */
    @Excel(name = "金额(含税)")
    private BigDecimal amount;

    /** 已发货数量 */
    @Excel(name = "已发货数量")
    private BigDecimal qtyShipped;

    /** 已开票数量 */
    @Excel(name = "已开票数量")
    private BigDecimal qtyInvoiced;

    /** 到期日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "到期日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date dueDate;

    /** 订购状态代码 */
    @Excel(name = "订购状态代码")
    private String orderStatus;

    /** 订购状态 */
    @Excel(name = "订购状态")
    private String orderStatusName;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setEntryId(String entryId)
    {
        this.entryId = entryId;
    }

    public String getEntryId()
    {
        return entryId;
    }
    public void setCustId(String custId)
    {
        this.custId = custId;
    }

    public String getCustId()
    {
        return custId;
    }
    public void setSiteCode(String siteCode)
    {
        this.siteCode = siteCode;
    }

    public String getSiteCode()
    {
        return siteCode;
    }
    public void setSiteName(String siteName)
    {
        this.siteName = siteName;
    }

    public String getSiteName()
    {
        return siteName;
    }
    public void setOrderNo(String orderNo)
    {
        this.orderNo = orderNo;
    }

    public String getOrderNo()
    {
        return orderNo;
    }
    public void setLineNo(Long lineNo)
    {
        this.lineNo = lineNo;
    }

    public Long getLineNo()
    {
        return lineNo;
    }
    public void setProductCode(String productCode)
    {
        this.productCode = productCode;
    }

    public String getProductCode()
    {
        return productCode;
    }
    public void setProductName(String productName)
    {
        this.productName = productName;
    }

    public String getProductName()
    {
        return productName;
    }
    public void setUnitCode(String unitCode)
    {
        this.unitCode = unitCode;
    }

    public String getUnitCode()
    {
        return unitCode;
    }
    public void setUnit(String unit)
    {
        this.unit = unit;
    }

    public String getUnit()
    {
        return unit;
    }
    public void setOrderQty(BigDecimal orderQty)
    {
        this.orderQty = orderQty;
    }

    public BigDecimal getOrderQty()
    {
        return orderQty;
    }
    public void setTaxRate(BigDecimal taxRate)
    {
        this.taxRate = taxRate;
    }

    public BigDecimal getTaxRate()
    {
        return taxRate;
    }
    public void setTax(BigDecimal tax)
    {
        this.tax = tax;
    }

    public BigDecimal getTax()
    {
        return tax;
    }
    public void setPrice(BigDecimal price)
    {
        this.price = price;
    }

    public BigDecimal getPrice()
    {
        return price;
    }
    public void setAmount(BigDecimal amount)
    {
        this.amount = amount;
    }

    public BigDecimal getAmount()
    {
        return amount;
    }
    public void setQtyShipped(BigDecimal qtyShipped)
    {
        this.qtyShipped = qtyShipped;
    }

    public BigDecimal getQtyShipped()
    {
        return qtyShipped;
    }
    public void setQtyInvoiced(BigDecimal qtyInvoiced)
    {
        this.qtyInvoiced = qtyInvoiced;
    }

    public BigDecimal getQtyInvoiced()
    {
        return qtyInvoiced;
    }
    public void setDueDate(Date dueDate)
    {
        this.dueDate = dueDate;
    }

    public Date getDueDate()
    {
        return dueDate;
    }
    public void setOrderStatus(String orderStatus)
    {
        this.orderStatus = orderStatus;
    }

    public String getOrderStatus()
    {
        return orderStatus;
    }
    public void setOrderStatusName(String orderStatusName)
    {
        this.orderStatusName = orderStatusName;
    }

    public String getOrderStatusName()
    {
        return orderStatusName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("entryId", getEntryId())
            .append("custId", getCustId())
            .append("siteCode", getSiteCode())
            .append("siteName", getSiteName())
            .append("orderNo", getOrderNo())
            .append("lineNo", getLineNo())
            .append("productCode", getProductCode())
            .append("productName", getProductName())
            .append("unitCode", getUnitCode())
            .append("unit", getUnit())
            .append("orderQty", getOrderQty())
            .append("taxRate", getTaxRate())
            .append("tax", getTax())
            .append("price", getPrice())
            .append("amount", getAmount())
            .append("qtyShipped", getQtyShipped())
            .append("qtyInvoiced", getQtyInvoiced())
            .append("dueDate", getDueDate())
            .append("orderStatus", getOrderStatus())
            .append("orderStatusName", getOrderStatusName())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
